﻿namespace UnityEngine
{
    using System;
    using System.Runtime.CompilerServices;

    public sealed class Screen
    {
        public static void SetResolution(int width, int height, bool fullscreen)
        {
            int preferredRefreshRate = 0;
            SetResolution(width, height, fullscreen, preferredRefreshRate);
        }

        [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall]
        public static extern void SetResolution(int width, int height, bool fullscreen, int preferredRefreshRate);

        public static bool autorotateToLandscapeLeft { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get; [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] set; }

        public static bool autorotateToLandscapeRight { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get; [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] set; }

        public static bool autorotateToPortrait { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get; [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] set; }

        public static bool autorotateToPortraitUpsideDown { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get; [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] set; }

        private static Resolution _currentResolution;
        public static Resolution currentResolution { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get { return _currentResolution; } }

        private static float _dpi;
        public static float dpi { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get { return _dpi; } }

        public static bool fullScreen { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get; [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] set; }

        public static Resolution[] GetResolution
        {
            get
            {
                return resolutions;
            }
        }

        public static int height { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get; }

        public static bool lockCursor { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get; [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] set; }

        public static ScreenOrientation orientation { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get; [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] set; }

        public static Resolution[] resolutions { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get; }

        public static bool showCursor { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get; [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] set; }

        public static int sleepTimeout { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get; [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] set; }

        public static int width { [MethodImpl(MethodImplOptions.InternalCall), WrapperlessIcall] get; }
    }
}

